<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<script type="text/javascript">

		var arr = ["孙悟空", "猪八戒", "沙和尚"];
		var arr2 = ["白骨精", "玉兔精", "蜘蛛精"];
		var arr3 = ["二郎神", "太上老君", "玉皇大帝"];

		/*
		 * concat()可以连接两个或多个数组，并将新的数组返回
		 * 	- 该方法不会对原数组产生影响
		 */
		var result = arr.concat(arr2, arr3, "牛魔王", "铁扇公主");

		/*
		 * join()
		 * 	- 该方法可以将数组转换为一个字符串
		 * 	- 该方法不会对原数组产生影响，而是将转换后的字符串作为结果返回
		 * 	- 在join()中可以指定一个字符串作为参数，这个字符串将会成为数组中元素的连接符
		 * 		如果不指定连接符，则默认使用,作为连接符
		 */
		arr = ["孙悟空", "猪八戒", "沙和尚", "唐僧"];

		result = arr.join("@-@");
		/*
		 * reverse()
		 * 	- 该方法用来反转数组（前边的去后边，后边的去前边）
		 * 	- 该方法会直接修改原数组
		 */

		arr.reverse();

		//console.log(arr);

		arr = ["b", "d", "e", "a", "c"];

		/*
		 * sort()
		 * 	- 可以用来对数组中的元素进行排序
		 * 	- 也会影响原数组，默认会按照Unicode编码进行排序
		 */
		arr.sort();
		//arr.reverse();

		/*
		 * 即使对于纯数字的数组，使用sort()排序时，也会按照Unicode编码来排序，
		 * 	所以对数字进排序时，可能会得到错误的结果。
		 * 
		 * 我们可以自己来指定排序的规则
		 * 	我们可以在sort()添加一个回调函数，来指定排序规则，
		 * 		回调函数中需要定义两个形参,
		 * 		浏览器将会分别使用数组中的元素作为实参去调用回调函数
		 * 		使用哪个元素调用不确定，但是肯定的是在数组中a一定在b前边
		 * 	- 浏览器会根据回调函数的返回值来决定元素的顺序，
		 * 		如果返回一个大于0的值，则元素会交换位置
		 * 		如果返回一个小于0的值，则元素位置不变
		 * 		如果返回一个0，则认为两个元素相等，也不交换位置
		 * 
		 * 	- 如果需要升序排列，则返回 a-b
		 * 		如果需要降序排列，则返回b-a
		 */
		arr = [5, 4, 2, 1, 3, 6, 8, 7];

		arr.sort(function (a, b) {

			//前边的大
			/*if(a > b){
				return -1;
			}else if(a < b){
				return 1;
			}else{
				return 0;
			}*/

			//升序排列
			//return a - b;

			//降序排列
			return b - a;

		});

		console.log(arr);

	</script>
</head>

<body>

</body>

</html>